Учебный курс: Подготовка на 1С:Специалист по платформе 1С:Предприятие 8.3

Задачи по расчетным механизмам – тема № 16:
Как рассчитать выплаты (командировочные, больничные) по среднедневному заработку за предыдущий месяц, а также учитывать приоритеты

Для прохождения этого блока потребуется знание материалов, изученных ранее:

На аттестации в некоторых задачах встречается требование, что записи по взаимосвязанным видам расчета могут быть проведены одним документом (не обязательно для каждого вида расчета будет отдельный документ «Начисление зарплаты»). В актуальном сборнике аттестационных задач (от 2014 г.) такого условия пока нет, но оно попадается в реальных билетах на аттестации.

К каким проблемам может привести одновременное формирование движений по видам расчета Оклад и Надбавка за вахту? Здесь может получиться такая ситуация, что запись по виду расчета Надбавка за вахту будет начислена раньше Оклада. Учитывая то, что Надбавка за вахту рассчитывается от оклада за этот же месяц, она не может быть корректно рассчитана, т.к. записи по окладу еще не существовало на этот момент, соответственно, база по нему будет равна нулю.

Для решения этой проблемы нужно организовать запись по видам расчета в строго определенном порядке. Это можно сделать добавлением реквизита Приоритет числового типа в ПВР, что позволит для каждого вида расчета указывать порядок его расчета. Например, для вида расчета Оклад будет указано значение 1, а для вида расчета Надбавка за вахту укажем значение 2. В дальнейшем в модуле расчета записей будем ориентироваться на значение этого реквизита и рассчитывать записи в нужном порядке.

Кроме решения этой проблемы рассмотрим также расчет командировки от оклада за предыдущий месяц. В отличие от ранее рассмотренных задач, где база рассчитывалась только для начислений, для командировки рассмотрим также получение базы по отработанному времени. Алгоритм расчета будет следующий: среднедневной заработок за прошлый месяц будет умножаться на число дней командировки в этом месяце. Среднедневной заработок за прошлый месяц при этом рассчитывается как оклад, разделенный на число отработанных дней за соответствующий период.

Надбавка за вахту будет начисляться процентом от оклада за текущий месяц, при этом Оклад должен браться только за период начисления надбавки (похожее условие встречается в задаче 3.4). Надбавка за вахту так же, как и Оклад, не должна начисляться за период, когда сотрудник был в командировке.

Исходя из последнего условия следует, что Надбавка за вахту должна вытесняться командировкой, а значит, для этого вида расчета будет использоваться период действия. По условию база для расчета надбавки должна браться за период ее начисления, а т.к. надбавка за вахту может быть вытеснена командировкой, то фактический период действия надбавки за вахту может быть разбит на интервалы:

Расчет базы за фактический период действия оклада

Рисунок 1 – Расчет базы за фактический период действия оклада

Здесь возникает сложность, как получить базу по окладу за период, который состоит из нескольких интервалов?

К сожалению, у Вас недостаточно прав для дальнейшего просмотра.

Если Вы приобрели курс, но еще не активировали токен — пожалуйста, активируйте доступ по инструкциям, высланным на Ваш email после покупки.

Если Вы не залогинены на сайте — залогиньтесь, вернитесь на эту страницу и обновите ее.

Если Вы залогинены, у Вас активирован токен доступа, но Вы все равно видите эту запись — напишите нам на e-mail поддержки.

Комментарии закрыты